VBA তে Custom Classes তৈরি এবং ব্যবহার
VBA তে Custom Classes হলো এমন একটি উপায় যার মাধ্যমে আপনি নতুন ডেটা টাইপ তৈরি করতে পারেন যা এক বা একাধিক প্রোপার্টি, মেথড এবং ইভেন্ট ধারণ করতে পারে। Classes ব্যবহারের মাধ্যমে আপনি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর ধারণা ব্যবহার করে কোডকে আরও সংগঠিত এবং পুনর্ব্যবহারযোগ্য করতে পারেন।
1. Custom Class এর ধারণা
Class হল একটি টেমপ্লেট যা অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি Properties (গুণাবলী), Methods (ফাংশন বা কার্যক্রম), এবং Events (ঘটনা) ধারণ করতে পারে। আপনি যখন একটি Custom Class তৈরি করেন, তখন আপনি আপনার নিজস্ব অবজেক্ট টাইপ তৈরি করেন যা ভিন্ন ভিন্ন ডেটা এবং আচরণ ধারণ করতে পারে।
2. Custom Class তৈরি করার পদ্ধতি
Step 1: নতুন ক্লাস তৈরি করা
- VBA Editor খুলুন (Alt + F11)।
- Insert মেনু থেকে Class Module সিলেক্ট করুন। এটি একটি নতুন ক্লাস তৈরি করবে।
- Properties এবং Methods যোগ করুন।
Step 2: Class Module এ কোড লিখা
' Custom Class: Person
' Create a custom class with Properties and Methods
Public Name As String ' Property: Name
Public Age As Integer ' Property: Age
' Method: Display full name and age
Public Sub DisplayInfo()
MsgBox "Name: " & Name & ", Age: " & Age
End Sub
' Method: Set age
Public Sub SetAge(ByVal newAge As Integer)
Age = newAge
End Subএখানে:
- Name এবং Age দুটি Properties হিসাবে ডিফাইন করা হয়েছে।
- DisplayInfo এবং SetAge দুটি Methods হিসাবে ডিফাইন করা হয়েছে। SetAge মেথডটি Age প্রোপার্টির মান সেট করতে ব্যবহৃত হয়, এবং DisplayInfo মেথডটি ব্যবহারকারীর নাম ও বয়স দেখানোর জন্য ব্যবহৃত হয়।
3. Custom Class ব্যবহার করা
এখন যে ক্লাসটি তৈরি করেছেন, তা ব্যবহার করার জন্য আপনাকে New কিওয়ার্ড দিয়ে একটি Object তৈরি করতে হবে এবং তারপর তার Properties এবং Methods অ্যাক্সেস করতে হবে।
Step 3: Class ব্যবহার করার উদাহরণ
Sub CreatePerson()
Dim p As Person ' Declare object of the custom class
Set p = New Person ' Create a new object of class Person
' Set the properties
p.Name = "John Doe"
p.Age = 30
' Call the method to display information
p.DisplayInfo
' Set new age using the method
p.SetAge 35
p.DisplayInfo
End Subএখানে:
- Set p = New Person এর মাধ্যমে একটি নতুন Person অবজেক্ট তৈরি করা হয়েছে।
- p.Name এবং p.Age এর মাধ্যমে অবজেক্টের Properties অ্যাক্সেস করা হয়েছে এবং তাদের মান সেট করা হয়েছে।
- p.DisplayInfo মেথডটি কল করা হয়েছে যাতে নাম এবং বয়স দেখানো হয়।
- পরে, p.SetAge 35 এর মাধ্যমে Age এর মান পরিবর্তন করা হয়েছে এবং পুনরায় DisplayInfo মেথডটি কল করা হয়েছে।
আউটপুট:
- প্রথমে একটি মেসেজ বক্স দেখাবে: Name: John Doe, Age: 30।
- পরবর্তীতে, Age পরিবর্তন হওয়ার পর একটি নতুন মেসেজ বক্স দেখাবে: Name: John Doe, Age: 35।
4. Advanced Example: Object-Oriented Programming (OOP) Concept
Custom Classes এর মাধ্যমে আপনি Encapsulation, Abstraction, এবং Inheritance এর মতো OOP ধারণাও বাস্তবায়ন করতে পারেন। তবে, VBA তে ইনহেরিটেন্স সোজা ভাবে সমর্থিত নয়, তবে আপনি মডুলার কোড ডিজাইন করতে পারবেন।
Advanced Example: Class with Private Variables
' Custom Class: Car
' Create a custom class with private variables, properties, and methods
Private pMake As String ' Private property
Private pModel As String ' Private property
' Property: Make
Public Property Get Make() As String
Make = pMake
End Property
Public Property Let Make(ByVal newMake As String)
pMake = newMake
End Property
' Property: Model
Public Property Get Model() As String
Model = pModel
End Property
Public Property Let Model(ByVal newModel As String)
pModel = newModel
End Property
' Method: Display Car Details
Public Sub DisplayCarInfo()
MsgBox "Car Make: " & pMake & ", Model: " & pModel
End Subএখানে:
- pMake এবং pModel দুটি Private Variables হিসাবে ডিফাইন করা হয়েছে।
- Property Get এবং Property Let ব্যবহার করে Private Variables এর মান অ্যাক্সেস এবং সেট করা হচ্ছে। এই প্রক্রিয়া Encapsulation ধারণার বাস্তবায়ন।
- DisplayCarInfo মেথডটি গাড়ির ব্র্যান্ড এবং মডেল প্রদর্শন করে।
Step 4: Using the Advanced Class
Sub CreateCar()
Dim car As Car ' Declare object of the custom class
Set car = New Car ' Create a new object of class Car
' Set the properties using Property Let
car.Make = "Toyota"
car.Model = "Camry"
' Call the method to display car details
car.DisplayCarInfo
End Subএখানে:
- car.Make এবং car.Model এর মাধ্যমে প্যারামিটার সেট করা হয়েছে।
- car.DisplayCarInfo মেথডটি কল করে গাড়ির তথ্য প্রদর্শন করা হয়েছে।
5. Advantages of Using Custom Classes
- Organized Code: ক্লাস ব্যবহার করে আপনি কোডকে আরও সংগঠিত এবং পরিষ্কারভাবে সাজাতে পারেন। একাধিক ফাংশন এবং ডেটা একত্রিত করে একটি মডিউল তৈরি করা যায়।
- Encapsulation: ডেটা এবং ফাংশন একত্রিত করা, যেখানে ডেটা প্রাইভেট থাকে এবং শুধুমাত্র প্রয়োজনীয় ফাংশন দ্বারা অ্যাক্সেস করা যায়।
- Reuse: একবার তৈরি করা ক্লাস পুনরায় ব্যবহার করা যায়, যা কোডের পুনঃব্যবহারযোগ্যতা নিশ্চিত করে।
- Modular Design: বড় প্রজেক্টে কোডের মডুলার ডিজাইন সহজেই করা যায়, যা টেস্ট এবং ডিবাগ করতে সহজ হয়।
উপসংহার
VBA তে Custom Classes ব্যবহার করে আপনি আপনার কোডের কার্যকারিতা এবং পুনর্ব্যাবহারযোগ্যতা বৃদ্ধি করতে পারেন। ক্লাস ব্যবহার করে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ধারণা বাস্তবায়ন করা সম্ভব, যার মাধ্যমে আপনি Encapsulation, Modular Design এবং Code Reusability নিশ্চিত করতে পারেন।
Read more